package modelo;

import mapper.AdmPersistenciaCasilla;

public abstract class Casilla {
	
	private static long ultimoID = 0;

	private long id;
	private int idTragamonedas;
	private String strName;


	public Casilla(int idTragamonedas, String strName) {
		this.setId(getProximoID());
		this.setIdTragamonedas(idTragamonedas);
		this.setName(strName);
	}
	public Casilla(long id, int idTragamonedas, String strName) {
		this.setId(id);
		this.setIdTragamonedas(idTragamonedas);
		this.setName(strName);
	}

	
	public static void setUtimoID(long id) {
		ultimoID = id;
	}
	public static long getProximoID() {
		return ++ultimoID;
	}

	public String getName() {
		return strName;
	}

	public void setName(String name) {
		this.strName = name;
	}

	public int getIdTragamonedas() {
		return idTragamonedas;
	}
	public void setIdTragamonedas(int idTragamonedas) {
		this.idTragamonedas = idTragamonedas;
	}
	
	public boolean esCasilla(Casilla casilla) {
		return (casilla!=null && this.getName().equals(casilla.getName()));		
	}
	
	public boolean esCasilla(long id) {
		return (this.id == id);		
	}
	
	public abstract boolean esComodin();
	
	
	public abstract void borrar(Casilla a);


	public void setId(long id) {
		this.id = id;
	}
	public long getId() {
		return id;
	}
	
	public void insertarDatos(){
		AdmPersistenciaCasilla.getInstancia().insertar(this);
	}
	public void actualizarDatos(){
		AdmPersistenciaCasilla.getInstancia().actualizar(this);
	}
	public void eliminarDatos(){
		AdmPersistenciaCasilla.getInstancia().borrar(this);	
	}

}
